The invention relates to system diagnosis and repair, and more specifically to automated modules deployable in association with an application, the modules serving to diagnose or repair malfunctioning client-servicing applications.
In the past enterprise applications consisted of a single monolithic binary file. Once a compiler generated the applicable binary file for an application program, the file remained until the next version was recompiled and shipped. Changes in an operating system, hardware, market demands, or other modifications that could affect the enterprise application were dependent on waiting for the next version of the full application to be implemented and recompiled.
More recently, many application programs are comprised of numerous components and many of these components may be linked to the application at runtime, through the use of run-time dependency links. These dependencies may include language support plug-ins, special editor plug-ins, and documentation for how to use a product and other files that are shared by different application programs. These load-time plug-ins and other files may be listed within tables of the application components, which are linked at runtime. When links are used, an operating system may search in a loader search path, application directory, operating system directory or user specified path for the name of the load-time plug-in, or other dependency so that the applicable component code can be loaded into memory for execution. Because load-time plug-ins and other dependencies can be shared by different application programs, the use of load-time or other load-time dependencies can reduce programming time. Examples of programs setting load-time dependencies include: Eclipse update sites; Apache Geronimo; and Apache Maven.
High-availability enterprise applications may provide failover and scalability through the use of a dedicated backup server that is on standby, and has ready-to-run applications previously loaded thereon. If a main application server fails or becomes overloaded, the dedicated backup server may be activated. Activating the backup server may include routing clients to the new backup server and synchronizing the application already loaded on the backup server with the current state of the application database from the primary server. In these enterprise applications, the monitoring activities are performed by utilities that have been installed and configured for the primary server before the failover event occurred. The monitoring utilities in this instance, which are apart from the application, are not customized for the specific event at hand and their operation is not logically connected with the operation of the backup application running on the backup server. WebSphere may be considered an example of an application offering failover systems.
As will be evident to one of skill in the art, the invention described herein is both novel and nonobvious over the plug-ins and enterprise applications that have come before.